<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <h1>class 01</h1>

    <script>
      class logger {
        printName(name = 'there') {
          this.print(`hello ${name}`)
        }
        print(text) {
          console.log(text)
        }
      }

      let n1 = new logger()
      //n1   //logger {}

      n1.printName()
      // hello there

      let { printName } = n1 //解构 赋值 把printName 从 n1里解构出来
      printName //ƒ printName(name = 'there') {this.print(`hello ${name}`);}
      //这时 是取不到 this 的 这个this  在n1里指的是 class 的实例 n1
      // 因为 被 解构出来了 printName 这个变量 里的this 指的是 undefind (这也是我不能理解的 这个this 为什么会是undefind)
      // printName()

      let n2 = () => {
        console.log(this)
      }
      n2()
      // 这里的this 指的是window
    </script>
  </body>
</html>
